#pragma once

#include "Property.h"
#include "DLL.h"

namespace My {

class PropertyGroup: 
	public PropertyBase,
	public PropertyMap
{
public:
	PropertyGroup(const ResourceString & description, 
		bool expanded = false) : 
		m_Hint(description), 
		m_Expanded(expanded) 
		{ }
public:
	PropertyGroup & DefaultExpanded(bool on)
		{ m_Expanded = on; return * this; }
public:
	virtual bool Accept(const EditableObject &) const
		{ return true; }
	virtual String GetHint(const EditableList &) const
		{ return m_Hint; }
	virtual const PropertyMap * GetSubProperties(const EditableList &) const
		{ return this; }
	virtual bool DefaultExpanded() const
		{ return m_Expanded; }
private:
	String	m_Hint;
	bool	m_Expanded;
};

} // My